import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Pdd1 {
    public static int getMinCombination(int N) {
        // 如果N小于10，直接返回N
        if (N < 10) {
            return N;
        }

        // 如果N大于45，不存在满足条件的数字
        if (N > 45) {
            return -1;
        }

        // 初始化变量
        int m = N;
        List<Integer> stk = new ArrayList<>();

        // 从9到1逐个考虑
        for (int i = 9; i >= 1; i--) {
            if (m != 0 && i <= m) {
                stk.add(i);
                m -= i;
                i = 10;
            }
        }

        // 计算结果
        int res = 0;
        for (int i = 0; i < stk.size(); i++) {
            res += stk.get(i) * (int) Math.pow(10, i);
        }

        return res;
    }

    public static void main(String[] args) {
        // 读取输入N
        int N = new Scanner(System.in).nextInt();

        // 获取最小组合并打印结果
        int result = getMinCombination(N);
        System.out.println("满足条件的最小数字组合是：" + result);
    }
}
